Using ctl3dv2.dll I found the following information on using ctl3dv2.dll while browsing through a help file for Borland C++ 4.0. This appears to work VERY WELL with few problems. The steps are as follows: 1. Add the following to your global delcarations: Declare Function GetModuleHandle Lib "Kernel" (ByVal ModuleName As String) As Integer Declare Function Ctl3dAutoSubclass Lib "Ctl3DV2.DLL" (ByVal hInst As Integer) As Integer Declare Function Ctl3dRegister Lib "Ctl3DV2.DLL" (ByVal hInst As Integer) As Integer Declare Function Ctl3dUnregister Lib "Ctl3DV2.DLL" (ByVal hInst As Integer) As Integer 2. Add the following to your main form LOAD event: Inst% = GetModuleHandle("Your app name here") ret = Ctl3dRegister(Inst%) ret = Ctl3dAutoSubclass(Inst%) 3. Add the following to your main form UNLOAD event: Inst% = GetModuleHandle("test.exe") ret = Ctl3dUnregister(Inst%) 4. Make sure that ctl3dv2.dll is in your \windows\system directory This only works on the common dialog and message boxes, not on VB forms. If you have the professional version of VB you already have the .dll file and are free to distribute it with your programs.